<?php

    if (!defined('__IS_LEAF__')) exit('Access Denied!');
    
    /**
     * Dao层基类，继承自base，这样可在dao中继续使用dao嵌套
     */
    class dao extends base{

        protected $dbDriver  = null;
        protected $tableName = null;
        protected $db = null;

        //实例化Dao模型
        public function __construct($tableName){
            
            //配置检测
            $this->checkConfig();
            //获取表名属性
            $this->tableName = $tableName;
            //实例化pdo对象
            $this->db = pdoMy::getInstance();

        }

        public function checkConfig(){

            //如果驱动为pdo_mysql，检测系统是否开启了此拓展
            $this->dbDriver = C('db_driver');
            if( $this->dbDriver == 'pdo' ){
                !extension_loaded('pdo_mysql') && trigger_error( L('pdo_extension_error'), E_USER_ERROR );
            }
            //获取数据库统计模式
            if(!defined('__DB__STATS__')) define('__DB_STATS__', C('db_stats'));

        }

        //普通的查询sql方式
        public function query($sql){

        }

        /**
         * 统计查询信息
         */
        public function count(){

        }

        /**
         * 查询单条记录，如果符合条件的为多条记录也会取第一个，取名为fetch，是因为PDO和pear类大多这样命名。
         */
        public function fetch(){

        }

        /**
         * 查询多个记录
         */
        public function fetchAll(){

        }

        /**
         * 插入操作
         */
        public function insert(){

        }

        /**
         * 数据层
         */
        public function data(){

        }

        //pdo的查询sql方式
        public function pdoQuery(){

        }

        /**
         * 批量插入数据库，配合bachFields使用
         * @access public
         * @param  $fileds
         * @param  $values
         */
        public function batchFields($fields){

        }

        /**
         * 批量插入数据库，配合bachFields使用
         * @access public
         * @param  $fileds
         * @param  $values
         */
        public function batchInsert($values){

        }


    }
